#ifndef _SOCK_UTILS_H_
#define _SOCK_UTILS_H_

#include<stdio.h>
#include<stdlib.h>
#include<errno.h>
#include<string.h>
#include<sys/socket.h>
#include<netinet/in.h>
#include<arpa/inet.h>
#include<netdb.h>

typedef struct {
    char ip_addr[15];
    uint16_t port;
} socket_t;

int connect_to_domain(char *domain, socket_t *socket);

int delete_socket(int sockfd, fd_set *master);

struct sockaddr_in build_sockaddr_in(socket_t socket);

int create_tcp_socket(int domain, int protocol, 
                      const socket_t *local_socket, 
                      const socket_t *remote_socket, int backlog);

int create_udp_socket(int domain, int protocol);

int sendall(int s, char *send_buf, int *len);

#endif // ifndef _SOCK_UTILS_H_ 
